<?php

namespace app\common\traits;

use app\common\Code;

trait Error
{

    private $_error = [];

    private $_httpCode = Code::DEFAULT_ERROR_CODE;

    /**
     * 获取所有错误信息
     * @return array
     */
    public function getErrors()
    {
        return $this->_error;
    }

    /**
     * 获取第一个错误信息
     * @return array
     */
    public function getFirstError()
    {
        if (empty($this->_error)) {
           return [];
        }

        $firstKey = array_keys($this->_error)[0];
        $firstValue = $this->_error[$firstKey][0];

        return [$firstKey, $firstValue];
    }

    /**
     * http错误码
     * @param $msg
     * @param int $code
     */
    public function setHttpCode($code)
    {
        $this->_httpCode = $code;
    }

    public function getHttpCode()
    {
        return $this->_httpCode;
    }



    /**
     * 添加错误信息
     * @param $msg
     * @param int $code
     * @return bool
     */
    public function addError($msg, $code = Code::DEFAULT_ERROR_CODE)
    {
        $this->_error[$code][] = $msg;

        return false;
    }

    /**
     * 是否有错误信息
     * @return bool
     */
    public function haveError()
    {
        if (!empty($this->_error)) {
            return true;
        } else {
            return false;
        }
    }
}